package com.platform.system.domain;

import java.math.BigDecimal;

import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.platform.common.annotation.Excel;
import com.platform.common.core.domain.BaseEntity;

/**
 * 商品对象 pro_product
 *
 * @author platform
 * @date 2025-02-23
 */
@Schema(name = "商品对象", description = "")
public class ProProduct extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    @Excel(name = "序号")
    @Schema(description = "序号", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long id;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    @Schema(description = "商品名称", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String name;

    /**
     * 商品描述
     */
    @Excel(name = "商品描述")
    @Schema(description = "商品描述", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String description;

    /**
     * 原价
     */
    @Excel(name = "原价")
    @Schema(description = "原价", implementation = BigDecimal.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private BigDecimal price;

    /**
     * 折扣
     */
    @Excel(name = "折扣")
    @Schema(description = "折扣", implementation = Double.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Double discount;

    /**
     * 库存
     */
    @Excel(name = "库存")
    @Schema(description = "库存", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long store;

    /**
     * 点赞数
     */
    @Excel(name = "点赞数")
    @Schema(description = "点赞数", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long praise;

    /**
     * 销量
     */
    @Excel(name = "销量")
    @Schema(description = "销量", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long sales;

    /**
     * 状态,[0-上架,1-下架]
     */
    @Excel(name = "状态,[0-上架,1-下架]")
    @Schema(description = "状态,[0-上架,1-下架]", implementation = Integer.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Integer status;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    @Schema(description = "分类id", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long categoryId;

    /**
     * 分类名称
     */
    @Excel(name = "分类名称")
    @Schema(description = "分类名称", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long categoryName;

    /**
     * 商品图片
     */
    @Excel(name = "商品图片")
    @Schema(description = "商品图片", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String imgs;

    /**
     * 是否推荐：0不推荐，1推荐
     */
    @Excel(name = "是否推荐：0不推荐，1推荐")
    @Schema(description = "是否推荐：0不推荐，1推荐", implementation = Integer.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Integer recommend;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    @Schema(description = "用户id", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long userId;

    @Excel(name = "真实折扣价")
    @Schema(description = "真实折扣价", implementation = BigDecimal.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private BigDecimal realPrice;

    /**
     * 积分
     */
    private Long points;

    public Long getPoints() {
        return points;
    }

    public void setPoints(Long points) {
        this.points = points;
    }

    public BigDecimal getRealPrice() {
        return realPrice;
    }

    public void setRealPrice(BigDecimal realPrice) {
        this.realPrice = realPrice;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setDiscount(Double discount) {
        this.discount = discount;
    }

    public Double getDiscount() {
        return discount;
    }

    public void setStore(Long store) {
        this.store = store;
    }

    public Long getStore() {
        return store;
    }

    public void setPraise(Long praise) {
        this.praise = praise;
    }

    public Long getPraise() {
        return praise;
    }

    public void setSales(Long sales) {
        this.sales = sales;
    }

    public Long getSales() {
        return sales;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryName(Long categoryName) {
        this.categoryName = categoryName;
    }

    public Long getCategoryName() {
        return categoryName;
    }

    public void setImgs(String imgs) {
        this.imgs = imgs;
    }

    public String getImgs() {
        return imgs;
    }

    public void setRecommend(Integer recommend) {
        this.recommend = recommend;
    }

    public Integer getRecommend() {
        return recommend;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("description", getDescription())
                .append("price", getPrice())
                .append("discount", getDiscount())
                .append("store", getStore())
                .append("praise", getPraise())
                .append("sales", getSales())
                .append("status", getStatus())
                .append("categoryId", getCategoryId())
                .append("categoryName", getCategoryName())
                .append("imgs", getImgs())
                .append("recommend", getRecommend())
                .append("userId", getUserId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
